Array Functions
PHP Manual

array_udiff_uassoc

(PHP 5)

array_udiff_uassocComputa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos y los índices con una llamada de retorno

Descripción

array array_udiff_uassoc ( array $matriz1 , array $matriz2 [, array $ ... ], callback $func_comparacion_datos , callback $func_comparacion_claves )

Computa la diferencia de matrices con un chequeo de índices adicional, comparando los datos por medio de una función llamada de retorno.

Note que las claves son usadas en la comparación, a diferencia de array_diff() y array_udiff().

Lista de parámetros

matriz1

La primera matriz.

matriz2

La segunda matriz.

func_comparacion_datos

La función de comparación usada como llamada de retorno.

Para la comparación, se usa la llamada de retorno indicada por el usuario. Ésta debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente.

La comparación de los datos de las matrices es realizada usando una llamada de retorno entregada por el usuario: func_comparacion_datos . En este sentido, su comportamiento es el opuesto al de array_diff_assoc(), quien usa una función interna para la comparación. comparison.

func_comparacion_claves

La comparación de claves (índices) es realizada también por la llamada de retorno func_comparacion_claves . Este comportamiento contrasta con lo que hace array_udiff_assoc(), ya que ésta compara los índices usando una función interna.

Valores retornados

Devuelve un valor tipo array que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos.

Ejemplos

Example #1 Ejemplo de array_udiff_uassoc()

<?php
class cr {
    private 
$miembro_privado;
    function 
cr($val)
    {
        
$this->miembro_privado $val;
    }

    static function 
func_comp_cr($a$b)
    {
        if (
$a->miembro_privado === $b->miembro_privado) return 0;
        return (
$a->miembro_privado $b->miembro_privado)? 1:-1;
    }

    static function 
func_comp_claves($a$b)
    {
        if (
$a === $b) return 0;
        return (
$a $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$resultado array_udiff_uassoc($a$b, array("cr""func_comp_cr"), array("cr""func_comp_claves"));
print_r($resultado);
?>

El resultado del ejemplo seria:

Array
(
    [0.1] => cr Object
        (
            [miembro_privado:private] => 9
        )

    [0.5] => cr Object
        (
            [miembro_privado:private] => 12
        )

    [0] => cr Object
        (
            [miembro_privado:private] => 23
        )
)

En nuestro ejemplo anterior, puede ver que la pareja "1" => new cr(4) está presente en ambas matrices, y por lo tanto no hace parte de la salida de la función. Tenga en cuenta que debe especificar 2 llamadas de retorno.

Notes

Note: Por favor note que esta función únicamente chequea una dimensión de una matriz n-dimensional. Por supuesto, puede chequear dimensiones más profundas usando, por ejemplo, array_udiff_uassoc($matriz1[0], $matriz2[0], "func_comparacion_datos", "func_comparacion_claves");.

Ver también


Array Functions
PHP Manual